package cn.yh.shop.admin.service;

import java.util.List;
import java.util.Map;

import cn.yh.shop.admin.model.Admin;

/**
 * @Description:admin的业务类接口
 * @author:"许荣斐"
 * @time:2016年12月14日 下午9:06:36
 */
public interface IAdminService {
	
	/**
	 * @Description:查询出所有的admin
	 * @return 返回值 : 存放有所有admin的集合
	 * @author: "许荣斐"
	 * @time:2016年12月14日 下午9:06:39
	 */
	public List<Admin> selectAllAdmin();
	
	/**
	 * @Description:根据admin的name和pwd查询出管理员,判断是否登录成功
	 * @param name 传入的管理员name
	 * @param pwd   传入的管理员密码
	 * @return 返回值:管理员是否登录成功
	 * @author: "许荣斐"
	 * @time:2016年12月14日 下午9:06:47
	 */
	public Admin adminLogin(String name); 
	
	/**
	 * @Description:根据id查询用户的所有权限
	 * @param adminId 用户ID
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:32:14
	 */
	List<String> queryAllPerms(Integer adminId);
	
	/**
	 * @Description:根据id查询用户的所有菜单ID
	 * @param adminId
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:32:48
	 */
	List<Integer> queryAllMenuId(Integer adminId);
	
	/**
	 * @Description:根据用户名，查询系统用户
	 * @param adminName
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:33:01
	 */
	Admin queryByUserName(String adminName);
	
	/**
	 * @Description:根据用户ID，查询用户
	 * @param adminId
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:33:25
	 */
	Admin queryObject(Integer adminId);
	
	/**
	 * @Description:查询用户列表
	 * @param map
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:33:48
	 */
	List<Admin> queryList(Map<String, Object> map);
	
	/**
	 * @Description:查询总数
	 * @param map
	 * @author: "许荣斐"
	 * @time:2016年12月20日 上午11:34:01
	 */
	int queryTotal(Map<String, Object> map);
	
	/**
	 * 保存用户
	 */
	void save(Admin admin);
	
	/**
	 * 修改用户
	 */
	void update(Admin admin);
	
	/**
	 * 批量删除用户
	 */
	void deleteBatch(Integer[] adminIds);
	
	/**
	 * 修改密码
	 * @param userId       用户ID
	 * @param password     原密码
	 * @param newPassword  新密码
	 */
	int updatePassword(Integer adminId, String password, String newPassword);
}
